package com.heeexy.example.controller;

import com.alibaba.fastjson.JSONObject;
import com.heeexy.example.service.FilesService;
import com.heeexy.example.util.CommonUtil;
import com.heeexy.example.util.FileUtil;
import com.heeexy.example.util.constants.ErrorEnum;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @Author MyPC
 * @Date 2022/3/31 14:11
 * @description：
 * @Version 1.0
 */

@RestController
@RequestMapping("/files")
public class FilesController {

    private FilesService filesService;

    @Autowired
    public void setFilesService(FilesService filesService) {
        this.filesService = filesService;
    }

    /**
     * 单图片素材文件导入
     * @param file 上传文件
     * @param uid 账目ID
     * @param lid 标签id(1展板编辑，2图片，3视频，4文档，5题库，6模型，7场馆编辑)
     * @return
     */
    @PostMapping("/uploadImage")
    public JSONObject addImageFiles(@RequestParam("file")MultipartFile file,@RequestParam("uid") String uid,@RequestParam("lid") String lid){
        if (!"image/jpeg".equals(file.getContentType())){
            return  CommonUtil.errorJson(ErrorEnum.E_90004);
        }
        return filesService.addFiles(file,uid,lid,FileUtil.imagesPath);
    }
    /**
     * 批量图片素材文件导入
     * @param filelit 上传文件集合
     * @param uid 账目ID
     * @param lid 标签id(1展板编辑，2图片，3视频，4文档，5题库，6模型，7场馆编辑)
     * @return
     */
    @PostMapping("/uploadImageList")
    public JSONObject addImageFilesList(@RequestParam("file") List<MultipartFile> filelit, @RequestParam("uid") String uid, @RequestParam("lid") String lid){
        for (MultipartFile file:filelit
             ) {
            if (!"image/jpeg".equals(file.getContentType())){
                return  CommonUtil.errorJson(ErrorEnum.E_90004);
            }
        }
        return filesService.addListFiles(filelit,uid,lid, FileUtil.imagesPath);
    }
    /**
     * 单pdf素材文件导入
     * @param file 上传文件
     * @param uid 账目ID
     * @param lid 标签id(1展板编辑，2图片，3视频，4文档，5题库，6模型，7场馆编辑)
     * @return
     */
    @PostMapping("/uploadDocument")
    public JSONObject addDocumentFiles(@RequestParam("file")MultipartFile file,@RequestParam("uid") String uid,@RequestParam("lid") String lid){
        if (!"application/pdf".equals(file.getContentType())){
            return  CommonUtil.errorJson(ErrorEnum.E_90004);
        }
        return filesService.addFiles(file,uid,lid,FileUtil.documentPath);
    }
    /**
     * 批量pdf素材文件导入
     * @param filelit 上传文件集合
     * @param uid 账目ID
     * @param lid 标签id(1展板编辑，2图片，3视频，4文档，5题库，6模型，7场馆编辑)
     * @return
     */
    @PostMapping("/uploadDocumentList")
    public JSONObject addDocumentFilesList(@RequestParam("file") List<MultipartFile> filelit, @RequestParam("uid") String uid, @RequestParam("lid") String lid){
        for (MultipartFile file:filelit
             ) {
            if (!"application/pdf".equals(file.getContentType())){
                return  CommonUtil.errorJson(ErrorEnum.E_90004);
            }
        }
        return filesService.addListFiles(filelit,uid,lid, FileUtil.imagesPath);
    }
    /**
     * 单pdf素材文件导入
     * @param file 上传文件
     * @param uid 账目ID
     * @param lid 标签id(1展板编辑，2图片，3视频，4文档，5题库，6模型，7场馆编辑)
     * @return
     */
    @PostMapping("/uploadVideo")
    public JSONObject addVideoFiles(@RequestParam("file")MultipartFile file,@RequestParam("uid") String uid,@RequestParam("lid") String lid){
        if (!"application/pdf".equals(file.getContentType())){
            return  CommonUtil.errorJson(ErrorEnum.E_90004);
        }
        return filesService.addFiles(file,uid,lid,FileUtil.documentPath);
    }
}
